package DAOs;

import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import Entidades.EntidadePreco;
import Entidades.EntidadeProduto;
import Utils.UtilCaminhoArquivosTexto;
import Utils.UtilLeitorDeArquivos;
import Utils.UtilTransformaStringEmCalendar;

public class DAOPreco implements DAOItem {
	private Map<String,EntidadePreco> precos = new HashMap<String,EntidadePreco>();
	List<String[]> dadosFiltadros;
	
	public void recupera(String caminhoArquivoTexto) throws IOException, ParseException{
		dadosFiltadros = new ArrayList<String[]>();
		dadosFiltadros = UtilLeitorDeArquivos.configuraDadosDoArquivo(caminhoArquivoTexto);
		criaPrecos(dadosFiltadros);
	}
	
	public void atualiza(String caminhoArquivoTexto) throws IOException, ParseException{
		recupera(caminhoArquivoTexto);
		UtilLeitorDeArquivos.atualizaBD(dadosFiltadros, UtilCaminhoArquivosTexto.txtProdutosBD);
	}
	
	private void criaPrecos(List<String[]> dadosFiltadros) throws ParseException{		
		for(String[] strs : dadosFiltadros){
			if(DAOProduto.getProdutos().containsKey(strs[1])){
				EntidadeProduto produto = DAOProduto.getProdutos().get(strs[1]);
				Calendar data = UtilTransformaStringEmCalendar.transformaStringEmCalendar(strs[0]);
				EntidadePreco preco = new EntidadePreco(data, strs[1], Double.valueOf(strs[2].trim()).doubleValue());
				produto.add(preco);
			}
        }
	}

	public Map<String,EntidadePreco> getPrecos() {
		return precos;
	}

	public void setPrecos(Map<String,EntidadePreco> precos) {
		this.precos = precos;
	}
}
